package com.作业.Day12;

import java.util.LinkedList;

/**
 * 模拟栈数据结构
 * 利用集合模拟
 */
public class Homework5 {
    public static void main(String[] args) {
        /**
         * 第一种
         * addfirst 每次从头部插入
         * removeFirst 删除头部元素
         */
        extracted1();
        /**
         * 第二种
         * 从尾部插入
         * 从尾部取出
         *
         * linklist.addlast();
         * linklist.removelast();
         */
        extracted();


    }

    private static void extracted1() {
        /**
         * 第一种
         * addfirst 每次从头部插入
         * removeFirst 删除头部元素
         */
        System.out.println("插入后集合中的数据");
        LinkedList linkedList = new LinkedList();
        linkedList.addFirst(1);
        System.out.println(1);
        linkedList.addFirst(2);
        System.out.println(2);
        linkedList.addFirst(3);
        System.out.println(3);
        linkedList.addFirst(4);
        System.out.println(4);


        System.out.println("删除集合中的数据");
        Object o1 = linkedList.removeFirst();
        System.out.println(o1);
        Object o2 = linkedList.removeFirst();
        System.out.println(o2);
        Object o3 = linkedList.removeFirst();
        System.out.println(o3);
        Object o4 = linkedList.removeFirst();
        System.out.println(o4);
    }

    private static void extracted() {
        /**
         * 第二种
         * 从尾部插入
         * 从尾部取出
         *
         * linklist.addlast();
         * linklist.removelast();
         */

        LinkedList<Object> objects = new LinkedList<>();
        objects.addLast("a");
        objects.addLast("b");
        objects.addLast("c");
        objects.addLast("d");
        System.out.println("从尾部插入后遍历");
        for (Object object : objects) {
            System.out.println(object);
        }
        System.out.println("从尾部删除后遍历");
        Object o = objects.removeLast();
        Object o1 = objects.removeLast();
        Object o2= objects.removeLast();
        Object o3 = objects.removeLast();
        System.out.println(o);
        System.out.println(o1);
        System.out.println(o2);
        System.out.println(o3);
    }
}
